class Solution {
public:
    int maxSubarrayLength(vector<int>& nums, int k) {
        int left=0,n=nums.size(),ans=0;
        unordered_map <int,int> sum;
        for(int right=0;right<n;right++){
            sum[nums[right]]++;
            while(sum[nums[right]]>k){
                sum[nums[left++]]--;
            }
            ans=max(ans,right-left+1);
        }
        return ans;
    }
};
